zimni a letni cas

Otázka od: Tomas Krysl

28. 11. 2002 20:57

Cau,
potreboval bych funkci na vypocet prechodu zimni/letni cas.

Diky
T.

-----
Ing. Tomáš Krýsl,
programátor a analytik
ALVA Strakonice s.r.o.
Písecká 893, 386 01 Strakonice
++420 377 430 701
GSM: 776 892 206
tomkrysl@quick.cz

Odpovedá: Petr Brant

29. 11. 2002 8:48

Pokud staci zjistit, zda aktualni systemove datum lezi v letnim resp. zimnim
case, tak mam tuto funkci:

function IsDaylightSavingTime: boolean;
//zkoumá, zda aktuální datum spadá do letního času
var TZI: _TIME_ZONE_INFORMATION;
begin
 Result:=(GetTimeZoneInformation(TZI) = TIME_ZONE_ID_DAYLIGHT);
end;

Subject: zimni a letni cas


potreboval bych funkci na vypocet prechodu zimni/letni cas.

Odpovedá: Jiri Foldyna

29. 11. 2002 10:50

> potreboval bych funkci na vypocet prechodu zimni/letni cas.

Ahoj,
zkus tohle:

(**********************************************************************)
(* IsLetniCas
(**********************************************************************)
function IsLetniCas(CheckDT : TDateTime) : boolean;
var
  StartDateTime, EndDateTime : TDate;
  Year : word;
begin
  Year := StrToInt(FormatDateTime('yyyy', CheckDT));
  StartDateTime := EncodeDate(Year, 3, 31) + EncodeTime(2, 0, 0, 0);
  StartDateTime := StartDateTime - DayOfWeek(StartDateTime) + 1;
  EndDateTime := EncodeDate(Year, 10, 31) + EncodeTime(3, 0, 0, 0);
  EndDateTime := EndDateTime - DayOfWeek(EndDateTime) + 1;
  if Year < 1996 then
    EndDateTime := IncMonth(EndDateTime, -1);
  Result := ((CheckDT >= StartDateTime) and (CheckDT < EndDateTime));
end;

Zdravim
Jiri Foldyna
mailto:jiri.f@avizo.cz